This invention relates to a method and apparatus for updating inter-server communication software in a network. More particularly, the invention is directed to a technique for software updating of servers that reduces the unavailability of network resources due to the update process. In this regard, the method includes the implementation of proxy software in servers that are to be updated. The servers are then selectively updated (e.g. one server at a time) in a manner, using the proxy software, to allow the servers to communicate with one another during the entire update process.
While the invention is particularly directed to the art of updating or upgrading inter-server communication software, and will be thus described with specific reference thereto, it will be appreciated that the invention may have usefulness in other fields and applications. For example, the invention may be used in any software application requiring on-line updates owing to interface protocol changes in a network where it is desirable to maintain resource availability at a high level.
By way of background, software updating or upgrading (or retrofitting in cases where the updating causes system down time or outage), typically involves a procedure to convert, or move, software from one version to another version. In a live system, “bug fixes” and/or “patches” are typically applied to remove software defects from an old version of software. In a telecommunication system, software updating is also a means for service providers to increase their revenue by introducing new features in the field to the end-users.
A major concern in executing a software update (SU) procedure for a live running system in a network is that new software activation typically requires a server, or a group of servers, to be completely offline for a period of time. Thus, the system must necessarily run with reduced capacity, or the system may experience full or partial outages.
Further, a software update procedure may need to be executed many times in a year in order to provide new features or new software enhancements to end users of the network. Because of the reduced capacity caused by each update procedure, a network service provider could significantly reduce its ability to generate revenue.
Accordingly, it is desirable to implement software updates so that the system resources remain highly available during the upgrade process. That is, the impact of the update procedure on the system should be kept to minimal or negligible levels. To achieve these objectives, conventional communication systems are typically designed with a N+K (K>=1) load-sharing configuration, where N is a minimum number of servers required for the offered system capacity. Therefore, the full capacity can always be maintained with N servers, if the update procedure is applied one server at a time.
However, the N+K load-sharing configuration also usually requires that two versions (the new, updated version and an older version) of software co-exist during software update in a multi-server communication system. The reason for this is that software inter-version operability must be maintained. That is, it is important that the servers being updated are able to communicate with one another during the update procedure—even if all of the servers are not updated with the same version of the software at any given time. If both versions of the software were not loaded on each server, one or more updated servers that run on the new version of the software will not be capable of communicating with the rest of the servers that are still running on the old version. Moreover, the system requires a complete shut down when the update is started and the new version of the software is fully activated.
Heretofore, inter-server operability was not achievable in the absence of the above server configuration (which includes both versions of the software). In this regard, the inter-server communication protocol may vary from one version of the software to the next version of the software. For example, the message length, version or message format may vary from one version of software to another version. As such, to avoid loading multiple versions of software on the servers, the software update must be executed with all servers being offline at the same time. This has the obvious disadvantage that no service can be provided during the upgrade process—which may take many hours. Alternatively, at least half of the total servers are taken offline for update while other half are still in service. In the later case, a switch-over takes place after first half has completed the update. This, of course, is problematic because the system has be offline during switch-over interval, and for the most of time, the system operates at 50% of full capacity.
The present invention contemplates a new and improved technique that resolves the above-referenced difficulties and others. For example, the present invention provides a method and apparatus of upgrading inter-server communication protocol software—one server at a time. Based upon the approach mentioned in the invention, the capacity degradation can be avoided. Therefore, current invention provides a framework for achieving high system availability, by reducing the planned system downtime, during the update procedure.